// convert all characters to lowercase to simplify testing 
var agt=navigator.userAgent.toLowerCase(); 

// *** BROWSER VERSION *** 
// Note: On IE5, these return 4, so use is_ie5up to detect IE5. 
var is_major = parseInt(navigator.appVersion); 
var is_minor = parseFloat(navigator.appVersion); 

// Note: Opera and WebTV spoof Navigator.  We do strict client detection. 
// If you want to allow spoofing, take out the tests for opera and webtv. 
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) 
            && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) 
            && (agt.indexOf('webtv')==-1)); 
var is_nav2 = (is_nav && (is_major == 2)); 
var is_nav3 = (is_nav && (is_major == 3)); 
var is_nav4 = (is_nav && (is_major == 4)); 
var is_nav4up = (is_nav && (is_major >= 4)); 
var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) || 
                      (agt.indexOf("; nav") != -1)) ); 
var is_nav5 = (is_nav && (is_major == 5)); 
var is_nav5up = (is_nav && (is_major >= 5)); 

var is_ie   = (agt.indexOf("msie") != -1); 
var is_ie3  = (is_ie && (is_major < 4)); 
var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")==-1) ); 
var is_ie4up  = (is_ie  && (is_major >= 4)); 
var is_ie5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) ); 
var is_ie5up  = (is_ie  && !is_ie3 && !is_ie4); 

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser 
// or if this is the first browser window opened.  Thus the 
// variables is_aol, is_aol3, and is_aol4 aren't 100% reliable. 
var is_aol   = (agt.indexOf("aol") != -1); 
var is_aol3  = (is_aol && is_ie3); 
var is_aol4  = (is_aol && is_ie4); 

var is_opera = (agt.indexOf("opera") != -1); 
var is_webtv = (agt.indexOf("webtv") != -1); 

// *** JAVASCRIPT VERSION CHECK *** 
var is_js; 
if (is_nav2 || is_ie3) is_js = 1.0 
else if (is_nav3 || is_opera) is_js = 1.1 
else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2 
else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3 
else if (is_nav5) is_js = 1.4 
// NOTE: In the future, update this code when newer versions of JS 
// are released. For now, we try to provide some upward compatibility 
// so that future versions of Nav and IE will show they are at 
// *least* JS 1.x capable. Always check for JS version compatibility 
// with > or >=. 
else if (is_nav && (is_major > 5)) is_js = 1.4 
else if (is_ie && (is_major > 5)) is_js = 1.3 
// HACK: no idea for other browsers; always check for JS version with > or >= 
else is_js = 0.0; 


// Setting the visibility of an object to visible
function show(obj) {
	if (typeof(obj) != 'object')
		return;

	if (is_nav)
		obj.visibility = "visible";
	else
		obj.style.visibility = "visible";
}

// Setting the visibility of an object to hidden
function hide(obj) {
	if (typeof(obj) != 'object')
		return;

	if (is_nav)
		obj.visibility = "hidden";
	else
		obj.style.visibility = "hidden";
}

function CurrentView(NewLayer) {
	var doc = top.frames[0].document;
	if (is_ie)
		doc = doc.all;
	// Here's our list of layers for this Theme
	var LayerObjects = new Array(
		doc.WCAdmin
	);
	var LayerNames = new Array(
		'ServerStatus',
		'ConfigFiles',
		'AccountManager',
		'Settings',
		'AdminOpts',
		'Help'
	);

	for (var i=0; i<LayerNames.length; i++)
	{
		if (LayerNames[i] == NewLayer)
			show(LayerObjects[i]);
		else
			hide(LayerObjects[i]);
	}
}

function Mesg(Msg)
{
	if (Msg.length > 0)
		alert(Msg);
}

function Post(field, value)
{
	document.forms[0].action += '&' + field + '=';
	if (value != null)
		document.forms[0].action += value;
	else
		document.forms[0].action += 'Yes';

	if (typeof(Validate) == 'undefined' || Validate())
		document.forms[0].submit();
  }

function Get(field, value)
{
	var url = document.forms[0].action += '&' + field + '=';
	if (value != null)
		url += value;
	else
		url += 'Yes';
	document.location = url;
}

function SetOption(name, value)
{
	for (var i=0; i<document.forms[0].length; i++)
	{
		if (document.forms[0].elements[i].name == name)
			var element = document.forms[0].elements[i];
	}
	if (element == null)
		return;

	if (element.type == 'checkbox')
	{
		if (element.value == value)
			element.checked = true;
	}
	else if (element.type == 'radio')
	{
		for (var i=0; i<document.forms[0].length; i++)
		{
			if (document.forms[0].elements[i].name == name &&
				document.forms[0].elements[i].value == value)
				document.forms[0].elements[i].checked = true;
		}
	}
	else if (element.type == 'select-one')
	{
		for (var i=0; i<element.length; i++)
		{
			if (element.options[i].value == value)
				element.selectedIndex = i;
		}
	}
	else if (element.type == 'text')
	{
		element.value = value;
	}
}

function openWin(url, width, height)
{
	var hWin = window.open(url, 'WebAdmin', 'directories=no,location=no,menubar=no,status=no,scrollbars=yes,resizable=yes,titlebars=no,toolbar=no,width=' + width + ',height=' + height+ ',screenX=200,screenY=200,top=200,left=200');
	hWin.focus();
}
	